package com.huilian.iotbox.admin.service.impl;

import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.huilian.iotbox.admin.dao.DeviceFaultRecordDao;
import com.huilian.iotbox.admin.service.DeviceFaultRecordService;
import com.huilian.iotbox.data.common.ServerResponse;
import com.huilian.iotbox.data.dto.DeviceFaultRecordDto;
import com.huilian.iotbox.data.vo.DeviceFaultRecordVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public class DeviceFaultRecordServiceImpl implements DeviceFaultRecordService {

    @Autowired
    private DeviceFaultRecordDao deviceFaultRecordDao;

    @Override
    public void deleteDataByDateTime(String endDateTime) {
        deviceFaultRecordDao.deleteDataByDateTime(endDateTime);
    }

    @Override
    public PageInfo<DeviceFaultRecordVo> findDeviceFaultRecordList(DeviceFaultRecordDto deviceFaultRecordDto) {
        PageHelper.startPage(deviceFaultRecordDto.getPageNum(), deviceFaultRecordDto.getPageSize(),"(dfr.state is null || dfr.state = 0) DESC,dfr.createTime DESC");
        List<DeviceFaultRecordVo> deviceFaultRecordVoList = deviceFaultRecordDao.findDeviceFaultRecordList(deviceFaultRecordDto);
        return new PageInfo<>(deviceFaultRecordVoList);
    }

    @Override
    public ServerResponse updateState(DeviceFaultRecordDto deviceFaultRecordDto) {
        DeviceFaultRecordVo deviceFaultRecordVo = deviceFaultRecordDao.findDeviceFaultRecordByUserId(deviceFaultRecordDto);
        if(deviceFaultRecordVo == null){
            return ServerResponse.createByError("该故障信息不属于此账号");
        }
        Integer result = deviceFaultRecordDao.updateState(deviceFaultRecordDto);
        if(result == 1){
            return ServerResponse.createBySuccess();
        }else {
            return ServerResponse.createByError("处理出错");
        }

    }

    @Override
    public ServerResponse statRecord(DeviceFaultRecordDto deviceFaultRecordDto) {
        DeviceFaultRecordVo deviceFaultRecord = deviceFaultRecordDao.findDeviceStat(deviceFaultRecordDto);

        return ServerResponse.createBySuccess(deviceFaultRecord);
    }
}
